论文《 Pixel2Mesh:Generating 3D Mesh Models from Single RGB Images》

Method

Graph-based Convolution

一个3D的Mesh可以看成点、边和面的集合。可以表示成$\mathcal M =(\mathcal V,\mathcal \varepsilon,\mathbf F)$, 其中 $\mathcal V = \{v_i\}{i=1}^N$ 为mesh中 $N$ 个点的集合; $\varepsilon = \{e_i\}{i=1}^E$ 为边的集合; $\mathbf F=\{f_i\}_{i=1}^N$为每个点上的特征的集合.

在一个不规则的图上基于图卷积的定义为:

\[f_p^{l+1} = w_0f_p^l + \sum_{q \in \mathcal N(p)}w_1f_q^l\]

其中,$f_p^l \in R^{d_l}$,$f^{l+1}p \in R^{d_l+1}$ 分别点$p$在卷积前后的特征向量;$\mathcal N(p)$ 为点 $p$ 的相邻的点;$w_0$和$w_1$是需要学习到的参数,其shape为$d_l \times d{l+1}$;

在这篇文章中,特征向量$f_p$为点的3D坐标feature encoding 3D shape输入的彩色图片的特征(如果存在的话)。

System Overview

整个框架包含两个分支:一个图片特征网络和一个级联的mesh变形网络。

图片特征网络是一个2D 的CNN,从输入的图形中提取perceputal featureperceputal feature是用来让mesh变形网络不断进行变形,从一个椭圆的网格到理想状态下的网格。

级联的mesh变形网络是一个GCN,包含3个deformation block和两个graph unpooling layer。每个deformation block的输入为表示当前mesh的图,输出为新的点的位置和特征。而graph unpooling layers会点的个数,这是因为为了增加处理细节的能力同时保证mesh的拓扑结构。

使用的损失函数包括3个:Surface normal lossLaplacian regularization lossEdge length loss

Initalize ellipsoid

椭球mesh位于相机前0.8m处,并且三个轴的大小为0.2m,0.2m,0.4m;并且包含156个点

Mesh deformation block

为了产生图片中物体的meshdeformation block需要输入图片的池化的特征($\mathbf P$)。$\mathbf C_{i-1}$代表当前mesh点的位置。$\mathbf F_{i-1}$代表当前mesh的特征。

Perceptual feature pooling layer 给定一个点的3D坐标,使用相机的内在参数计算其在图片平面上的2D投影,然后用双线性插值(bilinear interpolationpool the feature from four nearby pixels。一般说来,perceptual feature是将conv3_3conv4_3conv5_3的特征连接起来,最终得到的结果为1280D;然后与128D的输入的mesh的3D 特征连接起来,总共的为1408D向量。

G-ResNet 输入为1408D的向量。在整个网络架构中,G-ResNet有同样的架构,由14个graph residual卷积层包含128个channel组成。输出为128D的3D 特征向量和3D 点的坐标。

Graph unpooling layer

上采样层的作用是为了增加GCNN中点的个数。一个直接的方法是在每一个三角形中添加一个点(基于面)。然而,这会导致点的不平衡(imbalanced vertex degree),如每个点连接的边的个数。受到图形学中算法的启发,增加的点为每条边的中点。

Losses

使用Chamfer Loss来限制mesh点的位置;noraml loss来使得表面法向量的连续性;laplacian regularization来保持相邻点的相对位置;edge length regularization避免异常值。

Chamfer loss Chamfer loss是用来测量两个集合间的距离:$l_c=\sum_p\min_q ||p-q||_2^2 + \sum_q\min_p||p-q||_2^2$

Normal loss $l_n=\sum_p\sum_{q=arg \min_q(||p-q||^2_2)}||<p -\mathcal k, \mathbf n_q>||^2_2$ , s.t $\mathcal k \in \mathcal N(p)$,其中$q$为离$p$最近的点。

Regularization

Laplacian regularization 对每一个点$p$定义拉普拉斯坐标:$\delta_p = p - \sum_{k \in \mathcal N(p)} \frac{1}{   \mathcal N(p)   }\mathcal k$;那么,Laplacian regularization为$l_{lap} = \sum_p   \delta_p^{‘} - \delta_p   _2^2$,其中$\delta_p^{‘}$和$\delta_p$分别为通过deformation block前后的坐标。
Edge Length regularization $l_{loc}=\sum_p\sum_{\mathcal k \in \mathcal N(p)}   p - \mathcal k   _2^2$

总的损失函数为:$l_{all} = l_c + \lambda_1 l_n + \lambda_2 l_{lap} + \lambda_3 l_{loc}$

Experiment

Experiment Setup

Data: 来自于数据库

Evaluation Metric:标准的3D重建检验标准:首先从预测的结果和真实的mesh中采样(uniformly sample),然后计算其精准度和在一个特定的阈值$\tau$下预测出来中点和真实mesh点的比率。F-score计算精准度的调和平均数;然后计算Chamfer Distance(CD)和Earth's Mover Distance(EMD)。

Baselines3D-R2N2;PSG;N3MR

Training and Runtime

Comparison to state of the art